package controller

import (
	"github.com/gin-gonic/gin"
	"goproject/src/model"
	"goproject/src/service"
	"net/http"
)

/***  介质详情控制层
 */
// 获取介质信息
func OrderItemController(r *gin.Engine) {
	// 获取全量介质信息
	r.GET(`/api/desOrderItem/all`, func(context *gin.Context) {
		var orderItems []model.DesOrderItem = service.GetOrderItemList()
		context.JSON(http.StatusOK, orderItems)
	})
	// 介质新增
	r.POST("/api/desOrderItem/save", func(context *gin.Context) {
		var desOrderItem model.DesOrderItem
		// 尝试绑定请求体中的JSON数据到LoginRequest结构体实例  需要结构体的指针(&)，不能是结构体变量
		if err := context.ShouldBindJSON(&desOrderItem); err != nil {
			context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
			return
		}
		service.SaveDesItem(desOrderItem)
		context.String(http.StatusOK, "新增成功")
	})
	// 介质批量保存
	r.POST("/api/desOrderItem/batchSaves", func(context *gin.Context) {
		var desOrderItems []model.DesOrderItem
		// 尝试绑定请求体中的JSON数据到LoginRequest结构体实例  需要结构体的指针(&)，不能是结构体变量
		if err := context.ShouldBindJSON(&desOrderItems); err != nil {
			context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
			return
		}
		service.BatchSaveDesItems(desOrderItems)
		context.String(http.StatusOK, "批量新增成功")
	})
	// 介质更新
	r.PUT("/api/desOrderItem/update", func(context *gin.Context) {
		var desOrderItem model.DesOrderItem
		// 尝试绑定请求体中的JSON数据到LoginRequest结构体实例  需要结构体的指针(&)，不能是结构体变量
		if err := context.ShouldBindJSON(&desOrderItem); err != nil {
			context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
			return
		}
		service.UpdateDesItem(desOrderItem)
		context.String(http.StatusOK, "修改成功")
	})
	// 介质删除
	r.DELETE("/api/desOrderItem/delete", func(context *gin.Context) {
		id := context.Query("id")
		service.DeleteItemById(id)
		context.String(http.StatusOK, "删除成功")
	})
}
